// The API isBadVersion is defined for you.
bool isBadVersion(int version);

class Solution {
public:
    int firstBadVersion(int n) {
        int left = 1;
        int right = n;
        while (left < right) {
            int mid = left + (right - left) / 2;
            if (isBadVersion(mid))
            //知道 mid 右侧（不包括自身）的所有版本的不可能是第一个错误的版本
                right = mid;
            else if (!isBadVersion(mid))
            //知道 mid 左侧（包括自身）的所有版本都是正确的
                left = mid + 1;
        }
        return left;
    }
};